home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 47.7z / BS1 part 47 / HiSoft BASIC v1.04 (1989)(HiSoft)(Disk 2 of 2)[h Band].7z / HiSoft BASIC v1.04 (1989)(HiSoft)(Disk 2 of 2)[h Band].adf / Speech / Speech.BAS < prev    next >
Encoding:
BASIC Source File  |  1988-12-03  |  4.5 KB  |  169 lines

  1. BuildScreen:
  2.   CLS
  3.   PALETTE 0,.1,.1,.4
  4.   LOCATE 2,2 : PRINT "Text:"
  5.   LINE (60,7)-(612,18),1,b
  6.   LOCATE 19,4
  7.   PRINT "Freq.  Speed    Tuning  Volume"
  8.   LINE (40,30)-(65,160),1,b
  9.   LINE (120,30)-(145,160),1,b
  10.   LINE (205,30)-(230,160),1,b
  11.   LINE (285,30)-(310,160),1,b
  12.   LOCATE 5,44 : PRINT "Male     Female"
  13.   LINE (420,30)-(495,48),1,b
  14.   LINE (510,30)-(585,48),1,b
  15.   LOCATE 8,44 : PRINT  "Human    Comp."
  16.   LINE (420,57)-(495,75),1,b
  17.   LINE (510,57)-(585,75),1,b
  18.   LOCATE 11,47 : PRINT "Speak"
  19.   LINE (450,84)-(555,102),1,b
  20.   LOCATE 15,47 : PRINT "Store"
  21.   LINE (450,120)-(555,138),1,b
  22.  
  23. StartingValue:
  24.   FOR x=0 TO 8
  25.     READ Speech%(x)
  26.   NEXT x
  27.   DATA 110,0,150,0,22200,64,10,0,0
  28.   GOSUB ShowValue
  29.  
  30. MainLoop:
  31.   ON MOUSE GOSUB ReadMouse
  32.   MOUSE ON
  33.   WHILE 1 : WEND
  34.   
  35. ReadMouse:
  36.   Test=MOUSE(0)
  37.   x=MOUSE(3) : y=MOUSE(4)
  38.   IF x>39 AND x<311 AND y>29 AND y<161 THEN
  39.     IF x<66 THEN
  40.       Frequency:
  41.       Speech%(0)=(255-(y-30)*(255/130))+65
  42.       FreqValue=((320-Speech%(0))/255)*130
  43.       LINE (41,31)-(64,31+FreqValue),0,bf
  44.       LINE (41,32+FreqValue)-(64,159),3,bf
  45.       y=MOUSE(6)
  46.       IF y<31 THEN y=31
  47.       IF y>159 THEN y=159
  48.       IF MOUSE(0)<=-1 THEN Frequency
  49.     END IF
  50.     IF x>119 AND x<146 THEN
  51.       Speed:
  52.       Speech%(2)=(360-(y-30)*(360/130))+40
  53.       SpeedValue=((400-Speech%(2))/360)*130
  54.       LINE (121,31)-(144,31+SpeedValue),0,bf
  55.       LINE (121,32+SpeedValue)-(144,159),3,bf
  56.       y=MOUSE(6)
  57.       IF y<31 THEN y=31
  58.       IF y>159 THEN y=159
  59.       IF MOUSE(0)<=-1 THEN Speed
  60.     END IF
  61.     IF x>204 AND x<231 THEN
  62.       Tuning:
  63.       Speech%(4)=(23000-(y-30)*(23000/130))+5000
  64.       TuningValue=((28000-Speech%(4))/23000)*130
  65.       LINE (206,31)-(229,31+TuningValue),0,bf
  66.       LINE (206,32+TuningValue)-(229,159),3,bf
  67.       y=MOUSE(6)
  68.       IF y<31 THEN y=31
  69.       IF y>159 THEN y=159
  70.       IF MOUSE(0)<=-1 THEN Tuning
  71.     END IF
  72.     IF x>284 AND x<311 THEN
  73.       Volume:
  74.       Speech%(5)=(64-(y-30)*(64/130))
  75.       VolumeValue=((64-Speech%(5))/64)*130
  76.       LINE (286,31)-(309,31+VolumeValue),0,bf
  77.       LINE (286,32+VolumeValue)-(309,159),3,bf
  78.       y=MOUSE(6)
  79.       IF y<31 THEN y=31
  80.       IF y>159 THEN y=159
  81.       IF MOUSE(0)<=-1 THEN Volume
  82.     END IF
  83.   END IF
  84.   IF x>419 AND x<496 AND y>29 AND y<49 THEN
  85.     Speech%(3)=0
  86.     PAINT (422,32),3,1 : PAINT (512,32),0,1
  87.   END IF
  88.   IF x>509 AND x<586 AND y>29 AND y<49 THEN
  89.     Speech%(3)=1
  90.     PAINT (422,32),0,1 : PAINT (512,32),3,1
  91.   END IF
  92.   IF x>419 AND x<496 AND y>56 AND y<76 THEN
  93.     Speech%(1)=0
  94.     PAINT (422,59),3,1 : PAINT (512,59),0,1
  95.   END IF
  96.   IF x>509 AND x<586 AND y>56 AND y<76 THEN
  97.     Speech%(1)=1
  98.     PAINT (422,59),0,1 : PAINT (512,59),3,1
  99.   END IF
  100.   IF x>59 AND x<613 AND y>6 AND y<19 THEN
  101.     LOCATE 2,8 : PRINT  SPACE$(54)
  102.     LOCATE 2,8 : LINE INPUT Text$
  103.   END IF
  104.   IF x>449 AND x<556 AND y>83 AND y<103 THEN
  105.     PAINT (452,85),3,1
  106.     SAY TRANSLATE$(Text$),Speech%
  107.     PAINT (452,85),0,1
  108.   END IF
  109.   IF x>449 AND x<556 AND y>119 AND y<139 THEN
  110.     PAINT (452,121),3,1
  111.     LOCATE 2,8 : PRINT  SPACE$(54)
  112.     LOCATE 2,8 : COLOR 0,3 : PRINT "Filename:";
  113.     COLOR 1,0 : LINE INPUT Nam$
  114.     IF Nam$<>"" THEN
  115.       IF Nam$="=" OR Nam$="*" AND Altname$<>"" THEN Nam$=Altname$
  116.       OPEN Nam$ FOR OUTPUT AS 1
  117.         PRINT #1, "REM DATAs made with AmigaBASIC-Talker"
  118.         PRINT #1, "DATA ";
  119.         FOR x=0 TO 7
  120.           PRINT #1,Speech%(x)",";
  121.         NEXT x
  122.         PRINT #1,Speech%(8)
  123.       CLOSE 1
  124.       Altname$=Nam$
  125.     END IF
  126.     LOCATE 2,8 : PRINT SPACE$(54)
  127.     LOCATE 2,8 : COLOR 1,0 : PRINT  Text$
  128.     PAINT (452,121),0,1
  129.   END IF
  130.  
  131. RETURN
  132.  
  133. ShowValue:
  134.   LOCATE 2,8 : PRINT  SPACE$(54)
  135.   LOCATE 2,8 : PRINT  Text$
  136.   IF Speech%(3)=0 THEN
  137.     PAINT (422,32),3,1 : PAINT (512,32),0,1
  138.   ELSE
  139.     PAINT (422,32),0,1 : PAINT (512,32),3,1
  140.   END IF
  141.   IF Speech%(1)=0 THEN
  142.     PAINT (422,59),3,1 : PAINT (512,59),0,1
  143.   ELSE
  144.     PAINT (422,59),0,1 : PAINT (512,59),3,1
  145.   END IF
  146.  
  147.   FreqValue=((320-Speech%(0))/255)*130
  148.   LINE (35,31+FreqValue)-(70,31+FreqValue)
  149.   LINE (41,31)-(64,31+FreqValue),0,bf
  150.   LINE (41,32+FreqValue)-(64,159),3,bf
  151.   
  152.   SpeedValue=((400-Speech%(2))/360)*130
  153.   LINE (115,31+SpeedValue)-(150,31+SpeedValue)
  154.   LINE (121,31)-(144,31+SpeedValue),0,bf
  155.   LINE (121,32+SpeedValue)-(144,159),3,bf
  156.   
  157.   TuningValue=((28000-Speech%(4))/23000)*130
  158.   LINE (200,31+TuningValue)-(235,31+TuningValue)
  159.   LINE (206,31)-(229,31+TuningValue),0,bf
  160.   LINE (206,32+TuningValue)-(229,159),3,bf
  161.   
  162.   VolumeValue=((64-Speech%(5))/64)*130
  163.   LINE (280,31+VolumeValue)-(315,31+VolumeValue)
  164.   LINE (286,31)-(309,31+VolumeValue),0,bf
  165.   LINE (286,32+VolumeValue)-(309,159),3,bf
  166.   
  167. RETURN
  168.   
  169.